The invention relates to graphics data processing for displayed video images. In particular, this invention relates to blending texture information for displayed video images.
A typical video display system 20 is shown in FIG. 1. The system 20 has a microprocessor 21 for processing data. Input devices 22, such as a keyboard and mouse, provide input data to the system 20. A system memory 23 stores data, such as the operating system and software applications. A display engine 28 processes image data and a frame buffer 29 stores image frames prior to display on the video monitor 30.
One approach is shown in FIG. 2 for displaying a three dimensional (3D) object on a display screen (step 40). The 3D object is converted into graphics primitives (step 41). A primitive is a geometric shape, such as a triangle, sphere, polygon, etc. For a typical object, most of the primitives are triangles. This image processing for the 3D object is performed by the microprocessor 21 using a 3D graphics application, typically using an adaptive port interface (API) and a standard 3D graphics library. The graphics application and library are stored in the system memory 23. After the 3D object is converted into primitives, the primitives are sent to the display engine 28 for further processing (step 42) prior to display on the display screen (step 43).
FIG. 3 illustrates how a pixel 60 at location (x,y) of a primitive is generated on a display screen 30. Surface direction coordinates (u,v) 62 associated with the vertices of the primitive which the pixel resides are used to add shape to the displayed primitive. Vertex texture coordinates, such as (s1,t1) 66, (s2,t2) 68 and (s3,t3) 70, are used to add texture to the primitive. Each texture coordinate 66, 68, 70 is associated with a texture map 67, 69, 71. A bump map 73 indicates the unevenness of the primitive surface. To generate the pixel, the display engine 30 based on the surface direction coordinates 62, vertex texture coordinates 66, 68, 70 and bump map 73 (texture parameters) blends these texture parameters together to generate the pixel. To blend the texture parameters together, blending operations 65, such as multiplication, division, addition, subtraction, inverting and ORing are performed. Based on the blended texture parameters, the texture pattern and color associated with each displayed pixel is determined.
Since a similar procedure is performed on every pixel to be displayed on the display screen 30, the processing required by the display engine 28 is extensive. As a result of the heavy processing, display engines 28 performing these tasks must work at high speeds and with heavy workloads. Accordingly, it is desirable to have alternate approaches to displaying 3D objects.
An object to be displayed on a display screen is converted into at least one graphic primitive having associated texture data. The texture data is analyzed to determine whether operations associated with the texture data are commutative. A processor or a display engine is selected for performing the texture data operations based on in part the analysis.